/*
 * @Date: 2022-02-11 15:56:40
 * @LastEditors: tich425
 * @LastEditTime: 2022-02-12 17:34:31
 * @FilePath: \TodoList\router\router.go
 * @Description: 初始化路由
 */
package router

import (
	"todo-list/api"
	"todo-list/middleware"

	"github.com/gin-gonic/gin"
)

func InitRouter() *gin.Engine {
	r := gin.Default()

	r.Use(middleware.Cors()) // 跨域中间件

	route := r.Group("")
	{
		route.GET("/ping", api.Ping) // 测试接口
		// 每小时只能请求 20 次 (可在短时间连续请求 20 次, 接下来一个小时都无法请求)
		route.POST("/user/regist", middleware.LimitRoute(20), api.Regist) // 注册接口
		route.POST("/user/login", middleware.LimitRoute(20), api.Login)   // 登录接口
		// 每小时只能请求 60 次 (每分钟只能请求 1 次)
		route.POST("/user/verify/email", middleware.LimitAverageRoute(60), api.SendEmailCode) // 邮箱验证

		route.Use(middleware.Auth())
		{
			route.GET("/user/auth", api.LoginVerify)   // 验证用户是否登录
			route.GET("/todo/all", api.AllTodo)        // 查看全部便签
			route.POST("/todo/add", api.AddTodo)       // 添加便签
			route.GET("/todo/search", api.SearchTodo)  // 搜索便签
			route.POST("todo/update", api.UpdateTodo)  // 修改便签
			route.POST("/todo/remove", api.RemoveTodo) // 删除便签
			// route.POST("user/uploadimg", api.UploadImg) // 上传用户头像
		}
	}

	return r
}
